package cn.bearspark.article.dto.article;

import cn.bearspark.common.aop.autoparse.host.ParseEnum;
import cn.bearspark.common.aop.autoparse.host.ParseHost;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;

/**
 * 发布专栏的数据传输对象
 *
 * @author f
 */
@Data
public class PublishArticleDTO implements Serializable {

    /**
     * 专栏的草稿 id，可以为 null
     */
    private Long draftId;

    /**
     * 专栏 id
     */
    private Long articleId;

    /**
     * 发布专栏的动态 id
     */
    private Long happeningId;

    /**
     * 发布专栏的用户 id
     */
    private Long userId;

    /**
     * 专栏的标题，最多 100 个字
     */
    private String title;

    /**
     * 专栏的摘要，最多 256 个字
     */
    private String summary;

    /**
     * 专栏的内容
     */
    @ParseHost(ParseEnum.PARSE)
    private String content;

    /**
     * 封面图片的路径，可以为 null，如果为 null，则后端设置默认的封面
     */
    @ParseHost(ParseEnum.PARSE)
    private String coverUrl;

    /**
     * 专栏的标签 id
     */
    private Long tagId;

    /**
     * 专栏的分类 id 集合，最多 3 个，可以为空集合
     */
    private List<Long> categoryIdList;

    /**
     * 图片的 url 的路径的集合，可以为空集合
     */
    @ParseHost(ParseEnum.PARSE)
    private List<String> imgUrlList;

    /**
     * 专栏的可见性
     *
     * @see cn.bearspark.common.enumeration.VisibilityEnum
     */
    private Integer visibility;

    /**
     * 专栏的可评论性
     *
     * @see cn.bearspark.common.enumeration.CommentAbleEnum
     */
    private Integer commentAble;

    /**
     * 专栏的创作声明
     *
     * @see cn.bearspark.common.enumeration.DeclarationEnum
     */
    private Integer declaration;

    /**
     * 转载专栏的路径，如果没有转载，则可以为 null
     */
    @ParseHost(ParseEnum.PARSE)
    private String reprintArticleUrl;

    /**
     * 专栏的发布时间
     */
    private LocalDateTime pubTime;

}
